"""
@author: yinjx
@file: lianxi-ipv4.py
@time: 2023/6/4 20:01
"""
import re

def is_valid_ipv4(ip):
    """
    判断 IPv4 地址是否合法
    :param ip: IPv4 地址
    :return: True 如果是合法的 IPv4 地址，否则 False
    """
    # IPv4 地址格式为 xxx.xxx.xxx.xxx，其中每个 xxx 取值为 0-255，所以可以使用 \d 表示数字字符
    pattern = r'^((\d{1,2}|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d{2}|2[0-4]\d|25[0-5])$'

    # 使用 re 模块的 match 函数进行匹配，并返回匹配结果
    result = re.match(pattern, ip)

    # 如果匹配成功，则返回 True；否则返回 False
    return result is not None

# 从键盘输入 IPv4 地址
ip = input("请输入 IPv4 地址：")

# 验证 IPv4 地址是否合法，并输出验证结果
if is_valid_ipv4(ip):
    print("IPv4 地址合法！")
else:
    print("IPv4 地址不合法！")
